//
//  06_24.c
//  tasks
//
//  Created by Daniel on 2024/6/24.
//

#include <stdio.h>
#include <string.h>
#include <errno.h>

//格式化输出
//struct S
//{
//    char arr[10];
//    int age;
//    float score;
//};
//int main()
//{
//    struct S s = {"daniel",22,99.6f};
//    FILE* pf = fopen("/Users/mac/Desktop/未命名.txt", "w");
//    if(pf == NULL)
//    {
//        perror("haha");
//        return 1;
//    }
//    fprintf(pf, "%s %d %f", s.arr,s.age,s.score);
//    fclose(pf);
//    pf = NULL;
//    return 0;
//}

//格式化输入
//struct S
//{
//    char arr[10];
//    int age;
//    float score;
//};
//int main()
//{
//    struct S s = {};
//    FILE* pf = fopen("/Users/mac/Desktop/未命名.txt", "r");
//    if(pf == NULL)
//    {
//        perror("haha");
//        return 1;
//    }
//    fscanf(pf, "%s %d %f",s.arr,&(s.age),&(s.score));
//    printf("%s %d %f\n",s.arr,s.age,s.score);
//    fclose(pf);
//    pf = NULL;
//    return 0;
//}

//struct S
//{
//    char arr[10];
//    int age;
//    float score;
//};
//
//int main()
//{
//    struct S s = {"daniyar",22,92.6f};
//    FILE* pf = fopen("/Users/mac/Desktop/未命名.txt", "wb");
//    if(pf == NULL)
//    {
//        perror("fopen");
//        return 1;
//    }
//    fwrite(&s, sizeof(struct S), 1, pf);
//    fclose(pf);
//    pf = NULL;
//    return 0;
//}

//struct S
//{
//    char arr[10];
//    int age;
//    float score;
//};
//
//int main()
//{
//    struct S s = {0};
//    FILE* pf = fopen("/Users/mac/Desktop/未命名.txt", "rb");
//        if(pf == NULL)
//        {
//            perror("fopen");
//            return 1;
//        }
//    fread(&s, sizeof(struct S), 1, pf);
//    printf("%s %d %f\n",s.arr,s.age,s.score);
//    fclose(pf);
//    pf = NULL;
//    return 0;
//}

struct S
{
    char arr[10];
    int age;
    float score;
};
int main()
{
    struct S s = {"daniyar", 22, 92.6f};
    struct S tmp = {0};
    char buf[100] = {0};
    sprintf(buf,"%s %d %f",s.arr, s.age, s.score);
    printf("%s\n",buf);
//    从字符串buf中获取一个格式化的数据到tmp中
    sscanf(buf,"%s %d %f",tmp.arr,&(tmp.age),&(tmp.score));
    printf("%s %d %f\n",tmp.arr,tmp.age,tmp.score);
    return 0;
}

